package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 车型对象 t_vehicle_model
 * 
 * @author wuliuzhen
 * @date 2025-10-01
 */
public class TVehicleModel extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 型号 */
    @Excel(name = "型号")
    private String model;

    /** 公告批次 */
    @Excel(name = "公告批次")
    private String announcementBatch;

    /** 企业名称 */
    @Excel(name = "企业名称")
    private String enterpriseName;

    /** 车辆名称 */
    @Excel(name = "车辆名称")
    private String vehicleType;

    /** 品牌 */
    @Excel(name = "品牌")
    private String brand;

    /** 公告号 */
    @Excel(name = "公告号")
    private String announcementNumber;

    /** 最高车速 km/h */
    private BigDecimal maximumSpeed;

    /** 尺寸-长 mm */
    @Excel(name = "尺寸-长 mm")
    private Long dimensionLength;

    /** 尺寸-宽 mm */
    @Excel(name = "尺寸-宽 mm")
    private Long dimensionWidth;

    /** 尺寸-高 mm */
    @Excel(name = "尺寸-高 mm")
    private Long dimensionHeight;

    /** 轴距 mm */
    private BigDecimal wheelbase;

    /** 总质量 Kg */
    private BigDecimal totalMass;

    /** 整备质量 Kg */
    private BigDecimal curbWeight;

    /** 纯电动模式下续驶里程 km */
    @Excel(name = "纯电动模式下续驶里程 km")
    private Long pureElectricRange;

    /** 原车电池型号 */
    @Excel(name = "原车电池型号")
    private String originalBatteryModel;

    /** 使用动力电池型号 */
    @Excel(name = "使用动力电池型号")
    private String usedPowerBatteryModel;

    /** 使用动力电机型号 */
    @Excel(name = "使用动力电机型号")
    private String usedDriveMotorModel;

    /** 记录创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "记录创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 记录更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "记录更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 租户信息 */
    @Excel(name = "租户信息")
    private Long deptId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setModel(String model) 
    {
        this.model = model;
    }

    public String getModel() 
    {
        return model;
    }

    public void setAnnouncementBatch(String announcementBatch) 
    {
        this.announcementBatch = announcementBatch;
    }

    public String getAnnouncementBatch() 
    {
        return announcementBatch;
    }

    public void setEnterpriseName(String enterpriseName) 
    {
        this.enterpriseName = enterpriseName;
    }

    public String getEnterpriseName() 
    {
        return enterpriseName;
    }

    public void setVehicleType(String vehicleType) 
    {
        this.vehicleType = vehicleType;
    }

    public String getVehicleType() 
    {
        return vehicleType;
    }

    public void setBrand(String brand) 
    {
        this.brand = brand;
    }

    public String getBrand() 
    {
        return brand;
    }

    public void setAnnouncementNumber(String announcementNumber) 
    {
        this.announcementNumber = announcementNumber;
    }

    public String getAnnouncementNumber() 
    {
        return announcementNumber;
    }

    public void setMaximumSpeed(BigDecimal maximumSpeed) 
    {
        this.maximumSpeed = maximumSpeed;
    }

    public BigDecimal getMaximumSpeed() 
    {
        return maximumSpeed;
    }

    public void setDimensionLength(Long dimensionLength) 
    {
        this.dimensionLength = dimensionLength;
    }

    public Long getDimensionLength() 
    {
        return dimensionLength;
    }

    public void setDimensionWidth(Long dimensionWidth) 
    {
        this.dimensionWidth = dimensionWidth;
    }

    public Long getDimensionWidth() 
    {
        return dimensionWidth;
    }

    public void setDimensionHeight(Long dimensionHeight) 
    {
        this.dimensionHeight = dimensionHeight;
    }

    public Long getDimensionHeight() 
    {
        return dimensionHeight;
    }

    public void setWheelbase(BigDecimal wheelbase) 
    {
        this.wheelbase = wheelbase;
    }

    public BigDecimal getWheelbase() 
    {
        return wheelbase;
    }

    public void setTotalMass(BigDecimal totalMass) 
    {
        this.totalMass = totalMass;
    }

    public BigDecimal getTotalMass() 
    {
        return totalMass;
    }

    public void setCurbWeight(BigDecimal curbWeight) 
    {
        this.curbWeight = curbWeight;
    }

    public BigDecimal getCurbWeight() 
    {
        return curbWeight;
    }

    public void setPureElectricRange(Long pureElectricRange) 
    {
        this.pureElectricRange = pureElectricRange;
    }

    public Long getPureElectricRange() 
    {
        return pureElectricRange;
    }

    public void setOriginalBatteryModel(String originalBatteryModel) 
    {
        this.originalBatteryModel = originalBatteryModel;
    }

    public String getOriginalBatteryModel() 
    {
        return originalBatteryModel;
    }

    public void setUsedPowerBatteryModel(String usedPowerBatteryModel) 
    {
        this.usedPowerBatteryModel = usedPowerBatteryModel;
    }

    public String getUsedPowerBatteryModel() 
    {
        return usedPowerBatteryModel;
    }

    public void setUsedDriveMotorModel(String usedDriveMotorModel) 
    {
        this.usedDriveMotorModel = usedDriveMotorModel;
    }

    public String getUsedDriveMotorModel() 
    {
        return usedDriveMotorModel;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("model", getModel())
            .append("announcementBatch", getAnnouncementBatch())
            .append("enterpriseName", getEnterpriseName())
            .append("vehicleType", getVehicleType())
            .append("brand", getBrand())
            .append("announcementNumber", getAnnouncementNumber())
            .append("maximumSpeed", getMaximumSpeed())
            .append("dimensionLength", getDimensionLength())
            .append("dimensionWidth", getDimensionWidth())
            .append("dimensionHeight", getDimensionHeight())
            .append("wheelbase", getWheelbase())
            .append("totalMass", getTotalMass())
            .append("curbWeight", getCurbWeight())
            .append("pureElectricRange", getPureElectricRange())
            .append("originalBatteryModel", getOriginalBatteryModel())
            .append("usedPowerBatteryModel", getUsedPowerBatteryModel())
            .append("usedDriveMotorModel", getUsedDriveMotorModel())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("deptId", getDeptId())
            .toString();
    }
}
